package rssclient;

// Clases base
import java.net.URL;
import java.util.*;
import java.util.Iterator;
import java.io.InputStreamReader;
import java.io.IOException;

// Clases para mostrar el cuadro de dialogo
import javax.swing.*;
import java.awt.event.*;

// Clases para la recolección del feed
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;

// Clases para la configuracion de Log4j
import org.apache.log4j.Logger;

// Clase para validar acceso a URL Feed
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class extraeRSS 
{

        static final Logger log = Logger.getLogger(extraeRSS.class.getName());
 
        public extraeRSS() 
        {

                extraer();

        }

        public static List<String> extraer() 
        {
 
                log.info("Inicializando variables para el mÃ©todo");
                SyndFeedInput input=new SyndFeedInput();
                URL feedUrl;
	String URL = null;
	Document doc = null;
                SyndFeed feed;
                Iterator entries;
	List<String> lista_feed = new ArrayList<String>();
 
	try
                {

                        log.info("Buscando Feed");
                        //feedUrl= new URL("http://www.thinkgeek.com/updated.rss");
                        feedUrl= new URL("http://eurovan.falabella.cl/estadisticas/rss-hace.xml");
                        URL = feedUrl.toString();
                        log.info("Validando la conexión)");

                        try 
                        {
                                
                                doc = Jsoup.connect(URL).get();
		
                        }
                        catch (Exception ex)
                        {

                                leerRSS. valConn = false;
                                log.fatal("Error al tratar de conectar a la URL del feed\n" +  ex.getMessage(), ex);
                                return lista_feed;
	
                        }
                        
                        feed = input.build(new XmlReader(feedUrl));
                        entries = feed.getEntries().iterator();

                         while (entries.hasNext())
                        {

                                log.info("Cargando Generic List con informaciÃ³n del Feed");
                                SyndEntry entry= (SyndEntry) entries.next();
		lista_feed.add("URL: " + entry.getUri() + "\nTitulo: " + entry.getTitle() + "\nDescripciÃ³n: " + entry.getDescription().getValue() + "\n"); 

                        }
            
	}
                catch (Exception ex)
                {
    	
                        log.fatal("No es posible obtener feeds \n" + ex.getMessage(), ex);
    	
                }

                log.info("Enviando la informaciÃ³n rescatada");  
                leerRSS.valConn = true;
	return lista_feed;
        }
}
